/**
 * @file Pixel.c
 * @brief Fichier d'implémentation du module Pixel.
 *
 * 
 */

#include "Pixel.h"
#include "Image.h"
/* ********************************************************************* */
/*                                                                       */
/*              acceseurs et mutateurs du module pixels                  */
/*                                                                       */
/* ********************************************************************* */

int getPixelRouge(const Pixel *pix) 
{
  int res ;
  assert(pix != NULL) ;
  res = pix->r ;
  return res ;
}

int getPixelVert(const Pixel *pix) 
{
  int res ;
  assert(pix != NULL) ;
  res = pix->v ;

  return res ;
}

int getPixelBleu(const Pixel *pix) 
{
  int res ;
  assert(pix != NULL) ;
  res = pix->b ;

  return res ;
}

void setPixelRouge(Pixel *pix, int valeur) 
{
  assert(pix != NULL) ;
  assert((valeur >= 0) && (valeur <= 255)) ;

  pix->r = valeur ;
}

void setPixelVert(Pixel *pix, int valeur) 
{
  assert(pix != NULL) ;
  assert((valeur >= 0) && (valeur <= 255)) ;

  pix->v = valeur ;
}

void setPixelBleu(Pixel *pix, int valeur) 
{
  assert(pix != NULL) ;
  assert((valeur >= 0) && (valeur <= 255)) ;

  pix->b = valeur ;
}

/* ********************************************************************* */
/*                                                                       */
/*                 Test de Regression du module Pixel                    */
/*                                                                       */
/* ********************************************************************* */

void ImRegressionTest2()
{
        Image *im ;

	printf("\nTEST DE REGRESSION DU MODULE PIXEL\n") ;
	/* Test des accesseurs et mutateurs du module Pixel */
	
	printf("\nTest des mutateurs et accesseurs du module Pixel\n") ;
	printf("\nCréation d'une image à 1 pixel : ") ;
	im = imCreer(1,1) ;
	printf("ok.\n") ;
	printf("modification des valeurs du pixel à 255 : ") ;
	setPixelRouge(im->pix, 255) ;
	setPixelVert(im->pix, 255) ;
	setPixelBleu(im->pix, 255) ;
	printf("ok.\n") ;
	printf("Valeurs du pixel aprés modification :\n") ;
	printf("Rouge : %d\n",getPixelRouge(im->pix)) ;
	printf("Vert : %d\n",getPixelVert(im->pix)) ;
	printf("Bleu : %d\n",getPixelBleu(im->pix)) ;
	printf("Test ok.\n") ;

	printf("Destruction de l'image : ");
	imDetruire(im);
	printf("ok.\n");

	printf("\nTEST DE REGRESSION DU MODULE PIXEL TERMINE.\n\n") ;

}
